#include "utils.h"

Utils::Utils()
{

}

/**
 * 检测文件是否已经存在
 */
bool Utils::checkFileExists(QString fullFilename)
{
    QFileInfo fileInfo(fullFilename);
    if(fileInfo.isFile())
    {
        return true;
    }
    return false;
}

QJsonObject Utils::readJson(QString filename)
{
    QFile file = QFile(filename);
    file.open(QIODevice::ReadOnly);
    QByteArray data=file.readAll();
    file.close();
//    qDebug() << QString(data).simplified();
    QJsonParseError parseError;
    QJsonDocument doc= QJsonDocument::fromJson(QString(data).simplified().toUtf8(), &parseError);
    if(parseError.error == QJsonParseError::NoError){
        qDebug()<<"读取配置文件时完成" << parseError.errorString() << doc.object();
        return doc.object();  // 返回空
    }
    qDebug() << "读取配置文件出现错误";
    return QJsonObject();
}

QString Utils::readJs(QString filename)
{
    QFile file = QFile(filename);
    if(!file.open(QFile::ReadOnly | QFile::Text)){
        return "";   // 错误返回空串
    }
    QTextStream in(&file);
    QString content = in.readAll();
    return content;
}

bool Utils::deleteDir(const QString &path)
{
    if (path.isEmpty())
    {
          return false;
    }
    QDir dir(path);
    if(!dir.exists())
    {
        return true;
    }
    dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); //设置过滤
    QFileInfoList fileList = dir.entryInfoList(); // 获取所有的文件信息
    foreach (QFileInfo file, fileList)
    { //遍历文件信息
        if (file.isFile())
        { // 是文件，删除
            file.dir().remove(file.fileName());
        }else
        { // 递归调用函数，删除子文件夹
            deleteDir(file.absoluteFilePath());
        }
    }
    return dir.rmpath(dir.absolutePath()); // 这时候文件夹已经空了，再删除文件夹本身
}


